package com.lgmshare.component.utils;

import android.text.TextUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;

import java.lang.reflect.Type;
import java.util.List;

public class JSONUtils {

    private JSONUtils() {
    }

    /**
     * 转换为JSON对象
     *
     * @param data
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T parseObject(String data, Class<T> clazz) {
        if (TextUtils.isEmpty(data)) {
            return null;
        }
        try {
            return JSON.parseObject(data, clazz);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 转换为JSON对象
     *
     * @param data
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T parseObject(String data, Type clazz) {
        if (TextUtils.isEmpty(data)) {
            return null;
        }
        try {
            return JSON.parseObject(data, clazz);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 转换为JSONArray对象
     *
     * @param data
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> parseArray(String data, Class<T> clazz) {
        if (TextUtils.isEmpty(data)) {
            return null;
        }
        try {
            return JSON.parseArray(data, clazz);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String toJSONString(Object obj) {
        if (obj == null) {
            return "";
        }
        return JSON.toJSONString(obj);
    }

}
